/*
*	Classe Scene Node
*	TODO:	1- Permitir que um nó possua quantos filhos for necessário,
*			isto pode ser feito usando alocação dinâmica do vetor Children,
*			ou usando a classe vector.
*			2- Permitir busca associativa na hora de achar um nó filho,
*			por exemplo ao criar um nó filho eu associo a string braço a ele
*			depois quando eu quiser recuperar este nó eu uso um getChild("braço");
*
*/

#ifndef _SCENE_NODE__H
#define _SCENE_NODE__H

#include <GL/gl.h>
#include <GL/glu.h>

#include "SceneElement.h"

#define MAX_CHILD 50

namespace gameCG {
	class SceneNode {
		public:
			SceneNode(SceneElement* elem);
			~SceneNode();
			
			void render();
			void update(int delta);
			
			int addChild(SceneNode* child);
			SceneNode* getChild(int i);
			SceneElement* getElement();

		private:
			SceneNode*	m_children[MAX_CHILD];
			SceneElement*	m_elem;
			int m_numChildren;
	};	
}

#endif
